package com.simple.llm.domain.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class LLMMessageDTO {
    private String role;
    private String content;
    private Integer index;

    public LLMMessageDTO(String role, String content) {
        this.role = role;
        this.content = content;
    }

    public static LLMMessageDTO userMsg(String content, Integer index) {
        LLMMessageDTO llmMessageDTO = new LLMMessageDTO();
        llmMessageDTO.setRole("user");
        llmMessageDTO.setContent(content);
        llmMessageDTO.setIndex(index);
        return llmMessageDTO;
    }

    public static LLMMessageDTO userMsg(String content) {
        return LLMMessageDTO.userMsg(content,null);
    }

    public static LLMMessageDTO assistantMsg(String content, Integer index) {
        LLMMessageDTO llmMessageDTO = new LLMMessageDTO();
        llmMessageDTO.setRole("assistant");
        llmMessageDTO.setContent(content);
        llmMessageDTO.setIndex(index);
        return llmMessageDTO;
    }

    public static LLMMessageDTO assistantMsg(String content) {
        return LLMMessageDTO.assistantMsg(content,null);
    }

    public static LLMMessageDTO systemMsg(String content, Integer index) {
        LLMMessageDTO llmMessageDTO = new LLMMessageDTO();
        llmMessageDTO.setRole("system");
        llmMessageDTO.setContent(content);
        llmMessageDTO.setIndex(index);
        return llmMessageDTO;
    }

    public static LLMMessageDTO systemMsg(String content) {
        return LLMMessageDTO.systemMsg(content,null);

    }
}
